home *** CD-ROM | disk | FTP | other *** search
/ CU Amiga Super CD-ROM 12 / CU Amiga Magazine's Super CD-ROM 12 (1997)(EMAP Images)(GB)[!][issue 1997-07].iso / CUCD / Sound / AHI / SpeakFreely / sfmike.0 < prev    next >
Text File  |  1997-03-12  |  41KB  |  859 lines

  1.  
  2.  
  3.  
  4. SFMIKE(1)                                               SFMIKE(1)
  5.  
  6.  
  7. NNAAMMEE
  8.        sfmike - Speak Freely sound transmission utility
  9.  
  10. SSYYNNOOPPSSIISS
  11.        ssffmmiikkee [ --aabbccddeeffggllmmnnqqrrttuu ] [ --llppcc_[1100_[rr_n_]_] ] [
  12.        --ss_l_e_v_e_l_[_,_t_i_m_e_o_u_t_] ] [ --ii_I_D_E_A_k_e_y ] [ --kk_D_E_S_k_e_y ] [ --oo_k_e_y_f_i_l_e
  13.             ] [ --rrttpp ] [ --vvaatt ] [ --zz_U_s_e_r___l_i_s_t ] _h_o_s_t_n_a_m_e_[_:_p_o_r_t_] [
  14.             --pp_h_o_s_t_n_a_m_e_[_:_p_o_r_t_] ] [ _s_o_u_n_d_f_i_l_e _._._.  ]
  15.  
  16. DDEESSCCRRIIPPTTIIOONN
  17.        SSppeeaakk FFrreeeellyy allows users of a variety of Unix  and  Unix-
  18.        like  workstations  equipped with audio hardware connected
  19.        by a network to converse, using the audio input and output
  20.        facilities of the workstation to digitise and later recon­
  21.        struct the sound and the network to relay  sound  packets.
  22.        Audio  files in Sun .au format recorded with Sun aauuddiioottooooll
  23.        or SGI's ssoouunnddeeddiittoorr and ssoouunnddffiilleerr, or  .gsm  files  pre-
  24.        compressed with ttooaasstt may be transmitted and played on re­
  25.        mote workstations as well.  Optional compression  is  pro­
  26.        vided,  allowing  conversations  over relatively low-band­
  27.        width Internet links  as  well  as  local  area  networks.
  28.        SSppeeaakk FFrreeeellyy consists of two programs, ssffmmiikkee and ssffssppeeaakk­­
  29.        eerr.
  30.  
  31.        You can send audio to workstation _h_o_s_t_n_a_m_e running the ssff­­
  32.        ssppeeaakkeerr program with:
  33.  
  34.              ssffmmiikkee _h_o_s_t_n_a_m_e
  35.  
  36.        which sends real time audio, or:
  37.  
  38.             ssffmmiikkee _h_o_s_t_n_a_m_e _s_o_u_n_d_f_i_l_e
  39.  
  40.        where  _s_o_u_n_d_f_i_l_e is one or more files of prerecorded sound
  41.        in Sun (.au) format or GSM compressed (.gsm)  sound  files
  42.        created  by  ttooaasstt.  The _h_o_s_t_n_a_m_e can be either a local or
  43.        Internet host name (like stinky.dwarves.org) or a  numeric
  44.        IP  address  (for example 123.45.67.89).  If your worksta­
  45.        tion supports IP Multicasting, you can transmit to a  mul­
  46.        ticast   group   simply   by   giving   its   name  or  IP
  47.        address.    The scope (time-to-live) of the multicast  can
  48.        be specified as a number between 0 (restricted to the same
  49.        host) and 255 (unrestricted) at the end of the group  name
  50.        or   IP   address,  separated  by  a  slash,  for  example
  51.        231.111.75.122/128; the default multicast scope is 1:  re­
  52.        stricted to the same subnet.  If the host you're transmit­
  53.        ting to uses a different port number than the default con­
  54.        figured in the MMaakkeeffiillee, specify the port number after the
  55.        host name or IP address, separated by a colon, for example
  56.        bink.bilgepump.com:5050.  If both a port number and multi­
  57.        cast scope are specified,  the  port  number  should  come
  58.        first: 227.31.89.117:4851/64.
  59.  
  60.        If  the  user  you  wish to contact has a dial-up Internet
  61.  
  62.  
  63.  
  64.                            23 MAR 1996                          1
  65.  
  66.  
  67.  
  68.  
  69.  
  70. SFMIKE(1)                                               SFMIKE(1)
  71.  
  72.  
  73.        connection which assigns a different host name and IP  ad­
  74.        dress  for each session, that user can publish his current
  75.        address on a Look Who's Listening server.   You  can  then
  76.        use the ssffllwwll lookup program to see, based on the individ­
  77.        ual's invariant E-mail address or  name,  whether  they're
  78.        connected  and  if  so with what address.  An experimental
  79.        Look Who's Listening server is currently available at  the
  80.        site lwl.fourmilab.ch.
  81.  
  82.        If  _s_o_u_n_d_f_i_l_e is a single period, real time audio from the
  83.        microphone jack is selected.  This permits you to send one
  84.        or  more  sound  files, then switch to live audio all in a
  85.        single command.
  86.  
  87.        ssffmmiikkee is normally used in conjunction with  the  Sun  aauu­­
  88.        ddiioottooooll or SGI aauuddiiooppaanneell to set audio record and playback
  89.        levels.
  90.  
  91.        It's perfectly valid to send audio to a copy of  ssffssppeeaakkeerr
  92.        running  on the same workstation as ssffmmiikkee.  In fact, it's
  93.        a very handy way to experiment.
  94.  
  95. OOPPTTIIOONNSS
  96.        Options are processed left to right and  sound  files  are
  97.        sent  with the modes specified by options to their left on
  98.        the command line.
  99.  
  100.        --aa        Selects ``always transmit'' mode.   Unless  sup­
  101.                  pressed  by  squelch  (see  the --ss switch below)
  102.                  ssffmmiikkee transmits live audio continuously.   It's
  103.                  usually  better  to use the default push-to-talk
  104.                  mode.
  105.  
  106.        --bb        Selects push-to-talk (button) mode.  This is the
  107.                  default.  Output is initially off and the legend
  108.                  ``Pause:'' appears.  Pressing the space bar  (or
  109.                  any key other than those which exit the program)
  110.                  toggles back and forth  between  ``Pause:''  and
  111.                  ``Talk:'' modes.  In Talk mode sound packets are
  112.                  sent to the destination,  while  in  Pause  mode
  113.                  they  are  discarded. Push-to-talk  mode reduces
  114.                  load on the network since no  packets  are  sent
  115.                  unless  you're talking.  Push-to-talk makes con­
  116.                  ference calls a lot more practical,  since  only
  117.                  the person who ``has the floor'' is transmitting
  118.                  to the group.  To  exit  ssffmmiikkee,  press  Escape,
  119.                  ``q'',  Control C, or Control D; any other char­
  120.                  acter toggles the Pause/Talk mode.
  121.  
  122.        --cc        Simple sound compression.  (Note: The --tt switch,
  123.                  documented  below, uses a far more sophisticated
  124.                  form of compression which reduces network  band­
  125.                  width by a factor of five while delivering sound
  126.                  quality almost indistinguishable from the origi­
  127.  
  128.  
  129.  
  130.                            23 MAR 1996                          2
  131.  
  132.  
  133.  
  134.  
  135.  
  136. SFMIKE(1)                                               SFMIKE(1)
  137.  
  138.  
  139.                  nal.   The  --cc  form  of compression is retained
  140.                  primarily for compatibility  with  earlier  ver­
  141.                  sions  of ssffssppeeaakkeerr which did not support the --tt
  142.                  switch, and for machines too slow to perform  --tt
  143.                  switch  compression in real time.  The --ff switch
  144.                  enables ADPCM  compression  which  achieves  the
  145.                  same  reduction  in  data  rate as the --cc switch
  146.                  with much less loss of fidelity and only  modest
  147.                  demands  on  the  CPU.  Try --tt and --ff first, and
  148.                  only use the --cc switch if you have trouble [such
  149.                  as  regular  pauses  in the audio which indicate
  150.                  either the  sending  or  receiving  CPU  is  too
  151.                  slow].)   Simple compression is not supported by
  152.                  RTP and VAT protocols, and hence can be selected
  153.                  only in Speak Freely protocol.
  154.  
  155.        --dd        Enables debug output from _b_o_t_h the local copy of
  156.                  ssffmmiikkee and the receiving copy of ssffssppeeaakkeerr  (un­
  157.                  less blocked by the --qq option on ssffssppeeaakkeerr).
  158.  
  159.        --ee        Prints,  on  standard  output, a ``session key''
  160.                  based upon a collection of data from the machine
  161.                  execution environment likely to be unique in the
  162.                  history of the universe, used  as  the  seed  to
  163.                  generate  a 128 bit key using an IDEA-based ran­
  164.                  dom number generator.  ssffmmiikkee exits after print­
  165.                  ing  this  value.   Send it to the person you're
  166.                  talking to with a public  key  package  such  as
  167.                  ppggpp, then use it as the key for the --ii and/or --kk
  168.                  encryption modes.  The session key is printed in
  169.                  groups  of  four  letters separated by dashes so
  170.                  it's easier to read, if you wish, over a regular
  171.                  telephone  (but how do you know nobody's listen­
  172.                  ing?).
  173.  
  174.        --ff        Compress sound using the ADPCM (Adaptive Differ­
  175.                  ential  Pulse Code Modulation) algorithm.   This
  176.                  reduces the volume of data transmitted by a fac­
  177.                  tor  of two with much less loss of fidelity than
  178.                  the  simple  compression  selected  by  the   --cc
  179.                  switch.   It may be used in conjunction with the
  180.                  --cc switch to achieve a fourfold compression, al­
  181.                  beit  with substantial degradation of the audio.
  182.                  Only one of the  compression  modes  ADPCM,  LPC
  183.                  (--llppcc), LPC-10 (--llppcc1100), and GSM (--tt) may be se­
  184.                  lected at once.  ADPCM is provided as an  alter­
  185.                  native  to GSM for users with computers too slow
  186.                  to perform GSM compression in real  time;  ADPCM
  187.                  requires much less computation than GSM.
  188.  
  189.        --gg        Automatic  gain control is enabled for real time
  190.                  audio. The recording gain is dynamically adjust­
  191.                  ed  to compensate for the amplitude of the sound
  192.                  received, using the maximum dynamic range  with­
  193.  
  194.  
  195.  
  196.                            23 MAR 1996                          3
  197.  
  198.  
  199.  
  200.  
  201.  
  202. SFMIKE(1)                                               SFMIKE(1)
  203.  
  204.  
  205.                  out  clipping.  If this switch is specified, the
  206.                  record gain cannot  be  manually  set  with  aauu­­
  207.                  ddiioottooooll  or  aauuddiiooppaanneell.  Automatic gain control
  208.                  is off by default.
  209.  
  210.        --ii_k_e_y     The specified  _k_e_y  is  used  to  encrypt  sound
  211.                  transmitted  to  subsequently  named hosts using
  212.                  the  International  Data  Encryption   Algorithm
  213.                  (IDEA),  the  same  algorithm used by ppggpp to en­
  214.                  crypt message bodies  with  the  random  session
  215.                  key.   To  decrypt  sound  encoded  with  the --ii
  216.                  switch, ssffssppeeaakkeerr on the receiving machine  must
  217.                  be invoked with an identical --ii_k_e_y specification
  218.                  on the command line.  The _k_e_y can be as long  as
  219.                  you  like; if it's a phrase of several words, be
  220.                  sure to enclose it in quotes.   The  actual  128
  221.                  bit  IDEA key is created by applying the MMDD55 al­
  222.                  gorithm to the given _k_e_y.  ssffssppeeaakkeerr  will  con­
  223.                  tinue  to  correctly  receive  unencrypted sound
  224.                  even if invoked with the --ii switch.  To  disable
  225.                  IDEA  encryption  for  subsequent hosts, specify
  226.                  the --ii switch with no _k_e_y.  IDEA  encryption  is
  227.                  substantially faster and generally considered to
  228.                  be much more secure than the DES encryption per­
  229.                  formed  by the --kk switch.  However, IDEA is new­
  230.                  er, has not been  formally  adopted  by  govern­
  231.                  ments,  and is patented, restricting its commer­
  232.                  cial use.  Assuming your CPU is fast enough, you
  233.                  can enable any combination of IDEA, DES, and key
  234.                  file encryption.  But since  ppggpp  uses  IDEA  to
  235.                  transmit  message bodies, if you're using ppggpp to
  236.                  exchange keys with other parties, the  fundamen­
  237.                  tal  security of your voice link rests upon IDEA
  238.                  alone.
  239.  
  240.        --kk_k_e_y     The specified  _k_e_y  is  used  to  encrypt  sound
  241.                  transmitted  to subsequently named hosts using a
  242.                  slightly modified version of the Data Encryption
  243.                  Standard algorithm (the initial and final permu­
  244.                  tations, which do not contribute to the security
  245.                  of the algorithm and exist purely to deter soft­
  246.                  ware implementations of DES are not  performed).
  247.                  In  order  to  decrypt sound encoded with the --kk
  248.                  switch, ssffssppeeaakkeerr on the receiving machine  must
  249.                  be invoked with an identical --kk_k_e_y specification
  250.                  on the command line.  The _k_e_y can be as long  as
  251.                  you  like; if it's a phrase of several words, be
  252.                  sure to enclose it in quotes.   The  actual  DES
  253.                  key  is created by applying the MMDD55 algorithm to
  254.                  the given _k_e_y, then folding  the  resulting  128
  255.                  bit  digest into 56 bits with XOR and AND.  ssffss­­
  256.                  ppeeaakkeerr will continue to correctly receive  unen­
  257.                  crypted  sound  even  if  invoked  with  the  --kk
  258.                  switch.  To disable DES  encryption  for  subse­
  259.  
  260.  
  261.  
  262.                            23 MAR 1996                          4
  263.  
  264.  
  265.  
  266.  
  267.  
  268. SFMIKE(1)                                               SFMIKE(1)
  269.  
  270.  
  271.                  quent  hosts, specify the --kk switch with no _k_e_y.
  272.  
  273.        --ll        Remote loopback is  enabled.   Each  packet  re­
  274.                  ceived  by  ssffssppeeaakkeerr will be immediately trans­
  275.                  mitted back to a copy of  ssffssppeeaakkeerr  running  on
  276.                  the  originating  machine.  You can use loopback
  277.                  to evaluate the  quality  of  transmission  over
  278.                  various kinds of communication links without the
  279.                  need to have a person at the other end.
  280.  
  281.        --llppcc      Compress sound with an experimental linear  pre­
  282.                  dictive  coding algorithm developed by Ron Fred­
  283.                  erick of Xerox PARC.  This algorithm achieves  a
  284.                  tremendous  degree  of compression: more than 12
  285.                  to 1, with relatively good sound quality.     If
  286.                  you  select  it, be extremely careful not to set
  287.                  your microphone level  too  high.   Driving  the
  288.                  sound input into clipping causes terrible crack­
  289.                  ling break-ups in the audio.  It's best  to  ex­
  290.                  periment  with a local machine or echo server to
  291.                  make sure you have the input level set  optimal­
  292.                  ly.  Like the GSM compression selected by the --tt
  293.                  option, this  form  of  compression  requires  a
  294.                  great  deal  of  computation:  in  this  case in
  295.                  floating point.  If your computer is too slow or
  296.                  too  busy running other tasks, you may get drop-
  297.                  outs in the sound.   LPC  compression  does  not
  298.                  provide  as  good  sound  quality as GSM, and is
  299.                  somewhat finicky to set up; it is provided as an
  300.                  alternative  when  network bandwidth must be re­
  301.                  duced to a minimum.  Only one of the compression
  302.                  modes  ADPCM (--ff), LPC, LPC-10 (--llppcc1100), and GSM
  303.                  (--tt) may be selected at once.
  304.  
  305.        --llppcc1100_[rr_n_]
  306.                  Compress sound to a data rate of 2400  bits  per
  307.                  second using the United States Department of De­
  308.                  fense Federal Standard 1015  /  NATO-STANAG-4198
  309.                  algorithm,  republished  as  Federal Information
  310.                  Processing Standards Publication 137  (FIPS  Pub
  311.                  137).   LPC-10  compression  (an  algorithm com­
  312.                  pletely different from that selected by the --llppcc
  313.                  option)  compresses  sound  by  a factor of more
  314.                  than 26 to 1 with  fidelity,  albeit  less  than
  315.                  that of GSM (--tt) compression, perfectly adequate
  316.                  for voice-grade communications.  LPC-10 compres­
  317.                  sion  requires  a  great  deal of floating point
  318.                  computation.     If your computer is too slow or
  319.                  too  busy running other tasks, you may get drop-
  320.                  outs in the sound.  Only one of the  compression
  321.                  modes  ADPCM  (--ff),  LPC  (--llppcc), LPC-10, or GSM
  322.                  (--tt) can be selected at once.  LPC-10 is  not  a
  323.                  standard  compression  mode of RTP or VAT proto­
  324.                  col, and hence can be  selected  only  in  Speak
  325.  
  326.  
  327.  
  328.                            23 MAR 1996                          5
  329.  
  330.  
  331.  
  332.  
  333.  
  334. SFMIKE(1)                                               SFMIKE(1)
  335.  
  336.  
  337.                  Freely protocol.
  338.  
  339.                  The  extreme  compression achieved by the LPC-10
  340.                  algorithm allows the option of  ``robust  trans­
  341.                  mission,''  in  which  multiple  copies of sound
  342.                  packets are sent,  each  containing  a  sequence
  343.                  number  which allows the receiver to discard du­
  344.                  plicate  or  out-of-sequence  packets.    Robust
  345.                  transmission often allows intelligible conversa­
  346.                  tion over heavily  loaded  network  links  which
  347.                  would otherwise induce random pauses and gaps in
  348.                  received sound.  To enable  robust  compression,
  349.                  add  the suffix rr_n to the --llppcc1100 option, where _n
  350.                  is the number of copies of  each  packet  to  be
  351.                  sent, between 1 and 4.  If no rr_n suffix is spec­
  352.                  ified, no duplicate packets are sent (equivalent
  353.                  to  specifying  rr11.   For example, to send three
  354.                  copies of each LPC-10 sound packet, specify  the
  355.                  option  --llppcc1100rr33.  Sending duplicate sound pack­
  356.                  ets requires  more  network  bandwidth.   LPC-10
  357.                  compression  with no duplicate packets can func­
  358.                  tion on a 4800 bit per second connection to  the
  359.                  Internet;  a 9600 bit per second line can accom­
  360.                  modate two copies  of  each  packet  (--llppcc1100rr22),
  361.                  while a 14,000 bit per second or faster link can
  362.                  handle  three  (--llppcc1100rr33)  or  four   (--llppcc1100rr44)
  363.                  copies.   (Four  copies  of  each packet is just
  364.                  within the capability of a 14,400 bit per second
  365.                  line, so if the line is being used for other si­
  366.                  multaneous traffic, you may have to  reduce  the
  367.                  number  of  copies to three.)  Sending more than
  368.                  four copies of each packet does not improve per­
  369.                  formance  and  simply  wastes  bandwidth; packet
  370.                  replication is therefore limited to four copies.
  371.  
  372.        --mm        Manual gain control.  Allows you to manually set
  373.                  the input level with  aauuddiioottooooll  or  aauuddiiooppaanneell.
  374.                  This is the default mode.
  375.  
  376.        --nn        Disables  compression  of  sound.     The switch
  377.                  permits canceling the effect of a  previous  --cc,
  378.                  --ff, --llppcc, --llppcc1100, or --tt switch when sending mul­
  379.                  tiple sound files with one ssffmmiikkee command.
  380.  
  381.        --oo_f_i_l_e_n_a_m_e
  382.                  The contents of the specified _f_i_l_e_n_a_m_e are  used
  383.                  as  a ``key file'' to encrypt sound data sent to
  384.                  subsequently named hosts.  The file should be at
  385.                  least  8000  bytes long and contain data with as
  386.                  little  regularity  as  possible.    The   ``ppggpp
  387.                  ++mmaakkeerraannddoomm==_l_e_n_g_t_h _f_i_l_e_n_a_m_e'' facility is an ex­
  388.                  cellent way to create a  key  file.   To  decode
  389.                  sound  encrypted  with  a key file, ssffssppeeaakkeerr on
  390.                  the receiving machine must be invoked  with  the
  391.  
  392.  
  393.  
  394.                            23 MAR 1996                          6
  395.  
  396.  
  397.  
  398.  
  399.  
  400. SFMIKE(1)                                               SFMIKE(1)
  401.  
  402.  
  403.                  --oo switch specifying a file identical to that on
  404.                  the transmitting machine.  You can  disable  key
  405.                  file encryption by specifying the --oo switch with
  406.                  no _f_i_l_e_n_a_m_e.  Unencrypted sound  will  still  be
  407.                  played correctly even if the --oo switch is speci­
  408.                  fied on the call to ssffssppeeaakkeerr.  You  can  use  a
  409.                  public-key  cryptography  package such as ppggpp to
  410.                  exchange a key file with  another  person.   Key
  411.                  file  encryption  is much faster than any of the
  412.                  other options but is far, far less  secure;  use
  413.                  it  only if all of the other forms of encryption
  414.                  run too slowly on your workstation.
  415.  
  416.        --pp_h_o_s_t_n_a_m_e
  417.                  Adds _h_o_s_t_n_a_m_e to the  list  of  hosts  to  which
  418.                  sound  is  sent.  The same sound will be sent to
  419.                  each host you name. If you have a  slow  network
  420.                  link, the number of hosts will be limited since,
  421.                  even with compression, there may not  be  enough
  422.                  outbound  bandwidth  to  transmit packets to all
  423.                  the hosts.
  424.  
  425.        --qq        Quiet--disables debug output.  This is  the  de­
  426.                  fault;  the switch can be used to cancel the ef­
  427.                  fect of a prior --dd switch.  This switch  has  no
  428.                  effect  on  a  remote  copy of ssffssppeeaakkeerr invoked
  429.                  with the --dd switch.
  430.  
  431.        --rr        Ring.  This is used to get the  attention  of  a
  432.                  user  when  you're trying to establish a connec­
  433.                  tion.  The speaker output  is  unmuted  and  the
  434.                  playback volume is set to mid-level to guarantee
  435.                  audibility.  Sun workstation  users  may  subse­
  436.                  quently  switch  the  output  back  to the head­
  437.                  phones, if  desired,  with  aauuddiioottooooll.   The  --rr
  438.                  switch  has  no  effect  if remote ring has been
  439.                  disabled with the --nn switch on ssffssppeeaakkeerr.
  440.  
  441.        --rrttpp      Transmit using the Real-Time transport  Protocol
  442.                  (RTP),  as  defined  in  Internet  RFCs 1889 and
  443.                  1890.  This allows ssffmmiikkee to send audio to other
  444.                  Internet voice applications which support a com­
  445.                  mon subset of RTP.  To comply with the RTP stan­
  446.                  dard,  when  --rrttpp  is selected only DES (--kk) en­
  447.                  cryption is available and simple (--cc) and LPC-10
  448.                  (--llppcc1100)  compression  cannot  be selected.  RTP
  449.                  compliant programs do not necessarily  implement
  450.                  all compression modes or encryption; consult the
  451.                  documentation for the  program  with  which  you
  452.                  wish to communicate to see which options it sup­
  453.                  ports.
  454.  
  455.        --ss_l_e_v_e_l_[_,_t_i_m_e_o_u_t_]
  456.                  Squelch output whenever input  volume  is  below
  457.  
  458.  
  459.  
  460.                            23 MAR 1996                          7
  461.  
  462.  
  463.  
  464.  
  465.  
  466. SFMIKE(1)                                               SFMIKE(1)
  467.  
  468.  
  469.                  the specified _l_e_v_e_l.  The _l_e_v_e_l specification is
  470.                  an arbitrary number from 1 to 32767 with  larger
  471.                  numbers  denoting  louder sound.     The default
  472.                  squelch value,  if  none  is  given  on  the  --ss
  473.                  switch,  is 4096 which works reasonably well un­
  474.                  less your computer room is very noisy (in  which
  475.                  case you might want to avail yourself of a head­
  476.                  set  with  a   directional   boom   microphone).
  477.                  Squelch  interacts  poorly  with  automatic gain
  478.                  control; if you enable squelch, don't use the --gg
  479.                  switch.   Squelch  is off by default, equivalent
  480.                  to a specification of --ss00.  Enabling squelch al­
  481.                  lows  multiple  people to send sound to the same
  482.                  destination(s) and, as long as only  one  speaks
  483.                  at  a  time,  for the result to be intelligible.
  484.                  In order for this to work the input and  squelch
  485.                  levels  must  be  set so that sound is sent only
  486.                  when you're talking.  Enabling debugging  output
  487.                  with  the  --dd  switch  can help to determine the
  488.                  best settings.  To avoid breakups due to  momen­
  489.                  tary  pauses  in  speech,  squelch  continues to
  490.                  transmit for a period after the last packet  ex­
  491.                  ceeding  the squelch threshold was seen.  By de­
  492.                  fault, this interval is  1.5  seconds,  You  can
  493.                  specify  the squelch timeout by giving the value
  494.                  in milliseconds (one second  is  1000  millisec­
  495.                  onds)  after  the  squelch value, separated by a
  496.                  comma.
  497.  
  498.        --tt        Compress sound with the algorithm used by Global
  499.                  System Mobile (GSM) digital cellular telephones.
  500.                  This is the default mode.  GSM  compression  re­
  501.                  duces  the  network  bandwidth  requirement by a
  502.                  factor of five: 1650 bytes per  second  compared
  503.                  to  the uncompressed rate of 8000 bytes per sec­
  504.                  ond.  This allows SSppeeaakk FFrreeeellyy  to  be  used  on
  505.                  network   links  as  slow  as  19,200  bits  per
  506.                  second.     GSM compression is lossy, but  given
  507.                  the  limitations  of 8000 samples per second au­
  508.                  dio, there is little perceived loss of fidelity.
  509.                  GSM  compression and decompression are extremely
  510.                  computationally intense.  If the CPU  on  either
  511.                  end  is  not fast enough, regular pauses will be
  512.                  heard in the audio stream.  If you're running on
  513.                  a  machine  with  other CPU-intensive tasks, you
  514.                  may encounter random pauses when other tasks use
  515.                  enough  CPU  resources so compression and/or de­
  516.                  compression can't be done in real time.  If this
  517.                  occurs,  you  can  try  the ADPCM (--ff) or Simple
  518.                  (--cc) compression options described  above;  they
  519.                  provide less compression and poorer quality, but
  520.                  consume much less CPU time.
  521.  
  522.                  If you need to reduce the bandwidth further, you
  523.  
  524.  
  525.  
  526.                            23 MAR 1996                          8
  527.  
  528.  
  529.  
  530.  
  531.  
  532. SFMIKE(1)                                               SFMIKE(1)
  533.  
  534.  
  535.                  can  specify  _b_o_t_h the --cc and --tt switches.  This
  536.                  simultaneously  hogs  the  CPU  and  compromises
  537.                  sound quality, but the data rate to transmit re­
  538.                  al time audio is reduced to 955 bytes  per  sec­
  539.                  ond.   Only  one  of the compression modes ADPCM
  540.                  (--ff), LPC (--llppcc), LPC-10 (--llppcc1100), and  GSM  may
  541.                  be selected at once.
  542.  
  543.        --uu        Prints how-to-call information.
  544.  
  545.        --vvaatt      Transmit  using  a  protocol compatible with the
  546.                  Lawrence Berkeley Laboratory's  original  Visual
  547.                  Audio  Tool (VAT).    This allows ssffmmiikkee to send
  548.                  audio to other Internet voice applications  com­
  549.                  patible  with  most  releases of VAT.  (Starting
  550.                  with version 4, VAT supports the  Internet  Real
  551.                  Time  transport  Protocol  (RTP)  as well as the
  552.                  original VAT protocol.  Since RTP provides  much
  553.                  better session control and interoperability with
  554.                  other applications, you should use the --rrttpp  op­
  555.                  tion  instead of --vvaatt unless you absolutely have
  556.                  to communicate with programs which support  only
  557.                  the  old  VAT  protocol.)  To be compatible with
  558.                  VAT, when --vvaatt is selected the only DES (--kk) en­
  559.                  cryption is available and simple (--cc) and LPC-10
  560.                  (--llppcc1100) compression cannot be  selected.   Some
  561.                  nominally  ``VAT  compatible''  applications get
  562.                  bedeviled by the details when you select  infre­
  563.                  quently  used  compression modes such as LPC and
  564.                  combine them with encryption.  If at all  possi­
  565.                  ble, use --rrttpp mode to communicate with other In­
  566.                  ternet voice programs.
  567.  
  568.        --zz_u_s_e_r___l_i_s_t
  569.                  If ppggpp is installed on  your  machine,  you  can
  570.                  specify  one  or  more  users in your ppggpp public
  571.                  keyring (if you name more than user, be sure  to
  572.                  enclose  the  user  list  in quotes).  A 128 bit
  573.                  random session key is generated and ppggpp  is  in­
  574.                  voked  to encrypt it with the public keys of the
  575.                  named  users.   The  encrypted  session  key  is
  576.                  transmitted to subsequently named hosts and then
  577.                  used to IDEA encrypt sound sent to  them.   This
  578.                  avoids  the  separate step of generating and ex­
  579.                  changing a session key described above  for  the
  580.                  --ee  option.  Since the actual public key encryp­
  581.                  tion is performed by ppggpp, as long as you're  en­
  582.                  titled  to  use  that program, you can enjoy the
  583.                  convenience of public key  exchange  of  session
  584.                  keys for audio as well.
  585.  
  586. FFIILLEESS
  587.        On  Sun workstations audio is read from the //ddeevv//aauuddiioo de­
  588.        vice file.  The device will be  busy  for  input  whenever
  589.  
  590.  
  591.  
  592.                            23 MAR 1996                          9
  593.  
  594.  
  595.  
  596.  
  597.  
  598. SFMIKE(1)                                               SFMIKE(1)
  599.  
  600.  
  601.        ssffmmiikkee is running.  On Silicon Graphics machines the digi­
  602.        tal media development toolkit (a standard component of the
  603.        Iris  Development Option in IRIX 5.3 and above) is used to
  604.        access the audio hardware.
  605.  
  606. BBUUGGSS
  607.        No warning is given if the destination workstation is  not
  608.        running ssffssppeeaakkeerr; sound just disappears.
  609.  
  610.        In  order  to  deliver  acceptable (or at least tolerable)
  611.        performance across international links,  ssffmmiikkee  and  ssffss­­
  612.        ppeeaakkeerr  use ``Internet datagram'' socket protocol which is
  613.        essentially a ``fire and forget'' mechanism; neither  flow
  614.        control  nor  acknowledgement  are  provided.  Since sound
  615.        must be delivered at the correct time in order to  be  in­
  616.        telligible,  in  real time transmission there's little one
  617.        can do anyway if data are lost.  Consequently, bogged down
  618.        lines,  transmission  errors,  etc., simply degrade or de­
  619.        stroy the quality of the audio without providing  explicit
  620.        warnings  at  either  end that anything's amiss.  In addi­
  621.        tion, the lack of an end-to-end handshake deprives  ssffmmiikkee
  622.        of  backpressure  information to control the rate at which
  623.        it dispatches packets when transmitting a sound  file.   I
  624.        fake  flow control by calculating the time it will take to
  625.        play each packet and then pause that number  of  microsec­
  626.        onds  after  sending  it.  This is, of course, utterly be­
  627.        neath contempt, but it actually  works  quite  nicely  (at
  628.        least as long as your machine isn't busy). If you're moti­
  629.        vated to replace all this datagram stuff with nice,  clean
  630.        RPC  calls,  don't bother.  That's how I built the initial
  631.        version of SSppeeaakk FFrreeeellyy, and although it ran OK on an Eth­
  632.        ernet, it was a disaster on long distance connections.
  633.  
  634.        IDEA, DES, and key file options encrypt every sound packet
  635.        with the same key--no key chaining is performed.  (DES and
  636.        IDEA  encryption  do,  however,  use cipher block chaining
  637.        _w_i_t_h_i_n each packet.)  Chaining from packet to packet would
  638.        increase  security  but then loss of any packet would make
  639.        it impossible to decrypt all that followed.
  640.  
  641.        Certain governments attempt to restrict the  availability,
  642.        use,  and exportation of software with cryptographic capa­
  643.        bilities.  SSppeeaakk  FFrreeeellyy  was  developed  in  Switzerland,
  644.        which  has  no  such restrictions.  The DES, MD5, and IDEA
  645.        packages it uses was obtained from an Internet site in an­
  646.        other  European country which has no restrictions on cryp­
  647.        tographic software.  If you import this  software  into  a
  648.        country  with  restrictions  on cryptographic software, be
  649.        sure to comply with whatever restrictions apply.  The  re­
  650.        sponsibility  to  obey the law in your jurisdiction is en­
  651.        tirely your own.
  652.  
  653.        Intelligible speech requires both sufficient bandwidth  to
  654.        deliver  the audio data and a consistent delivery time for
  655.  
  656.  
  657.  
  658.                            23 MAR 1996                         10
  659.  
  660.  
  661.  
  662.  
  663.  
  664. SFMIKE(1)                                               SFMIKE(1)
  665.  
  666.  
  667.        packets.  Even if your link is theoretically fast  enough,
  668.        congestion  on it or on other intermediate links may cause
  669.        drop-outs.  Compressing the data with the  --ff,  --tt,  --llppcc,
  670.        --llppcc1100,  and/or --cc switches reduces the bandwidth required
  671.        by a factor of from two to twenty-six and can often  alle­
  672.        viate this problem, and the ``robust transmission'' option
  673.        of LPC-10 compression  may  improve  intelligibility  when
  674.        communicating  across   heavily-loaded lines.  Even so, if
  675.        file transfers or other bulk traffic are underway,  you'll
  676.        probably be disappointed.
  677.  
  678.        By  default ssffmmiikkee transmits on Internet port number 2074.
  679.        It is conceivable, albeit unlikely, that this  might  con­
  680.        flict  with  some  other locally-developed network server.
  681.        You can specify a different port by appending  it  to  the
  682.        destination  host, separated by a colon, but of course you
  683.        need to ensure the remote copy of ssffssppeeaakkeerr  is  listening
  684.        on  that port.  When communicating with other applications
  685.        using VAT or RTP protocols, you must specify the  port  on
  686.        which the other application is listening.  RFC 1890 recom­
  687.        mends  port   5004   as   the   default   port   for   RTP
  688.        applications.  Many  VAT  protocol applications default to
  689.        port 3456.
  690.  
  691.        There are _w_a_y too many command  line  options.     Options
  692.        should  be  consolidated  wherever possible and changed to
  693.        keywords which can be abbreviated to the  shortest  unique
  694.        prefix.
  695.  
  696. AACCKKNNOOWWLLEEDDGGEEMMEENNTTSS
  697.        The Silicon Graphics audio drivers are based on the stand-
  698.        alone SGI version developed by  Paul  Schurman  of  Espoo,
  699.        Finland.   Without his generous contribution, SSppeeaakk FFrreeeellyy
  700.        would have probably remained forever confined in an  orbit
  701.        around the Sun.
  702.  
  703.        Andrey  A.  Chernov  contributed  code  that enables Speak
  704.        Freely to build and run on FreeBSD.
  705.  
  706.        Hans Werner Strube contributed code to allow  the  program
  707.        to  build  under Solaris 2.4 without any source changes or
  708.        need for compatibility modes.
  709.  
  710.        Frank Gadegast, ``KeyJ Phade'', contributed code that  al­
  711.        lows Speak Freely to work on Linux.
  712.  
  713.        The  GSM  compression and decompression code was developed
  714.        by Jutta Degener and Carsten Bormann of the Communications
  715.        and  Operating Systems Research Group, Technische  Univer­
  716.        sitaet    Berlin:     Fax:     +49.30.31425156,     Phone:
  717.        +49.30.31424315.   They  note  that THERE IS ABSOLUTELY NO
  718.        WARRANTY FOR THIS SOFTWARE.  Please  see  the  rreeaaddmmee  and
  719.        ccooppyyrriigghhtt  files in the ggssmm directory for further details.
  720.  
  721.  
  722.  
  723.  
  724.                            23 MAR 1996                         11
  725.  
  726.  
  727.  
  728.  
  729.  
  730. SFMIKE(1)                                               SFMIKE(1)
  731.  
  732.  
  733.        The ADPCM compression and decompression code was developed
  734.        by  Jack Jansen of the Centre for Mathematics and Computer
  735.        Science,  Amsterdam,  The  Netherlands.   Please  see  the
  736.        rreeaaddmmee and ccooppyyrriigghhtt files in the aaddppccmm directory for fur­
  737.        ther details.
  738.  
  739.        The --llppcc linear predictive  coding  compression  algorithm
  740.        was developed by Ron Frederick of Xerox PARC.
  741.  
  742.        The  public domain implementation of U.S. Federal Standard
  743.        1015 --llppcc1100 compression algorithm  was  developed  by  the
  744.        United  States  Department  of  Defense, National Security
  745.        Agency (NSA).   Please see the RREEAADDMMEE and FFAAQQ files in the
  746.        llppcc1100 directory for additional details.
  747.  
  748.        The  DES encryption code was developed by Phil Karn, KA9Q.
  749.        Please see the rreeaaddmmee file in the ddeess directory  for  fur­
  750.        ther details.
  751.  
  752.        The  DES  encryption  library  used for encrypting and de­
  753.        crypting VAT and RTP protocol packets was developed by Er­
  754.        ic  Young.   Please  see the RREEAADDMMEE and CCOOPPYYRRIIGGHHTT files in
  755.        the lliibbddeess directory for further details.
  756.  
  757.        The IDEA algorithm was developed by Xuejia Lai  and  James
  758.        L.  Massey,  of  ETH  Zurich.   The implementation used in
  759.        SSppeeaakk FFrreeeellyy was modified and derived from original C code
  760.        developed  by  Xuejia Lai and optimised for speed by Colin
  761.        Plumb.  The IDEA[tm] block cipher is  patented  by  Ascom-
  762.        Tech  AG.  The  Swiss patent number is PCT/CH91/00117, the
  763.        European patent number is EP 0 482 154 B1,  and  the  U.S.
  764.        patent  number is US005214703.  IDEA[tm] is a trademark of
  765.        Ascom-Tech AG.  There is no license fee required for  non­
  766.        commercial use.  Commercial users may obtain licensing de­
  767.        tails from Dr. Dieter  Profos,  Ascom-Tech  AG,  Solothurn
  768.        Lab, Postfach 151, CH-4502 Solothurn, Switzerland, Tel +41
  769.        65 242 885, Fax +41 65 235 761.
  770.  
  771.        The implementation  of  MD5  message-digest  algorithm  is
  772.        based on a public domain version written by Colin Plumb in
  773.        1993.  The algorithm is due to Ron Rivest.  The  algorithm
  774.        is described in Internet RFC 1321.
  775.  
  776. SSEEEE AALLSSOO
  777.        aauuddiioo(4),  aauuddiiooppaanneell(1),  aauuddiioottooooll(1), ppggpp(1), ssffllwwll(1),
  778.        ssffssppeeaakkeerr(1),  ssoouunnddeeddiittoorr(1),   ssoouunnddffiilleerr(1),   ttaallkk(1),
  779.        ttooaasstt(1)
  780.  
  781. AAUUTTHHOORR
  782.             John Walker
  783.             WWW: http://www.fourmilab.ch/
  784.  
  785.        All  modules  of  SSppeeaakk  FFrreeeellyy developed by me are in the
  786.        public domain.  See the rreeaaddmmee and/or ccooppyyrriigghhtt  files  in
  787.  
  788.  
  789.  
  790.                            23 MAR 1996                         12
  791.  
  792.  
  793.  
  794.  
  795.  
  796. SFMIKE(1)                                               SFMIKE(1)
  797.  
  798.  
  799.        the  aaddppccmm,  ddeess, ggssmm, and iiddeeaa directories for conditions
  800.        of use and distribution of those components.   This  soft­
  801.        ware is provided ``as is'' without express or implied war­
  802.        ranty.
  803.  
  804.  
  805.  
  806.  
  807.  
  808.  
  809.  
  810.  
  811.  
  812.  
  813.  
  814.  
  815.  
  816.  
  817.  
  818.  
  819.  
  820.  
  821.  
  822.  
  823.  
  824.  
  825.  
  826.  
  827.  
  828.  
  829.  
  830.  
  831.  
  832.  
  833.  
  834.  
  835.  
  836.  
  837.  
  838.  
  839.  
  840.  
  841.  
  842.  
  843.  
  844.  
  845.  
  846.  
  847.  
  848.  
  849.  
  850.  
  851.  
  852.  
  853.  
  854.  
  855.  
  856.                            23 MAR 1996                         13
  857.  
  858.  
  859.